#include "es_bkp.h"


    void es_bkp::Init(){
        //电源和备份时钟开启(RTC是备份域的一部分)
	    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
    }

    u16 es_bkp::Read(u16 BKP_DR){
        	//开启备份寄存器访问(复位后cpu会自动禁止访问后备寄存器和 RTC，所以需要开启)
        PWR_BackupAccessCmd(ENABLE);

        //读取备份寄存器
        u16 bkpVal = BKP_ReadBackupRegister(BKP_DR);
               
        //PWR_BackupAccessCmd(DISABLE);

        return bkpVal;
    }

    void es_bkp::Write(u16 BKP_DR,u16 value){
        	//开启备份寄存器访问(复位后cpu会自动禁止访问后备寄存器和 RTC，所以需要开启)
        PWR_BackupAccessCmd(ENABLE);

        //写备份寄存器
        BKP_WriteBackupRegister(BKP_DR,value);
       
        //PWR_BackupAccessCmd(DISABLE);
    }


